package com.isdepci.project.carbon.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.isdepci.framework.aspectj.lang.annotation.Excel;
import com.isdepci.framework.web.domain.BaseEntity;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import java.util.Date;

/**
 * 项目列对象 a_project
 *
 * @author isdepci
 * @date 2025-03-29
 */
public class AProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目ID */
    private Long projectId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目类型 (1火力发电、2水力发电、3陆上风力发电、4海上风力发电、5太阳能发电 、6电力储能、7其他 */
    @Excel(name = "项目类型 (1火力发电、2水力发电、3陆上风力发电、4海上风力发电、5太阳能发电 、6电力储能、7其他")
    private Integer projectType;

    /** 启动日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "启动日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 移交日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "移交日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handoverDate;

    /** 空间边界(1-施工组合（加工）场/2-物资设备仓储场/3-施工办公区/4-施工生活区/5-其他) */
    @Excel(name = "空间边界(1-施工组合", readConverterExp = "加=工")
    private String spaceBoundary;

    /** 数据边界(1-化石燃料燃烧排放量/2-过程排放量/3-购入电力、热力产生的排放量/4-碳交易量/5-碳抵消量) */
    @Excel(name = "数据边界(1-化石燃料燃烧排放量/2-过程排放量/3-购入电力、热力产生的排放量/4-碳交易量/5-碳抵消量)")
    private String dataBoundary;

    /** 合规标准库 */
    @Excel(name = "合规标准库")
    private Integer complianceStandard;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long userId;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    /** 删除标志（1代表存在 2代表删除） */
    private String delFlag;

    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId()
    {
        return projectId;
    }
    public void setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public String getProjectName()
    {
        return projectName;
    }
    public void setProjectType(Integer projectType)
    {
        this.projectType = projectType;
    }

    public Integer getProjectType()
    {
        return projectType;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }
    public void setHandoverDate(Date handoverDate)
    {
        this.handoverDate = handoverDate;
    }

    public Date getHandoverDate()
    {
        return handoverDate;
    }
    public void setSpaceBoundary(String spaceBoundary)
    {
        this.spaceBoundary = spaceBoundary;
    }

    public String getSpaceBoundary()
    {
        return spaceBoundary;
    }
    public void setDataBoundary(String dataBoundary)
    {
        this.dataBoundary = dataBoundary;
    }

    public String getDataBoundary()
    {
        return dataBoundary;
    }
    public void setComplianceStandard(Integer complianceStandard)
    {
        this.complianceStandard = complianceStandard;
    }

    public Integer getComplianceStandard()
    {
        return complianceStandard;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setCreationTime(Date creationTime)
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime()
    {
        return creationTime;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("projectId", getProjectId())
            .append("projectName", getProjectName())
            .append("projectType", getProjectType())
            .append("startDate", getStartDate())
            .append("handoverDate", getHandoverDate())
            .append("spaceBoundary", getSpaceBoundary())
            .append("dataBoundary", getDataBoundary())
            .append("complianceStandard", getComplianceStandard())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .append("creationTime", getCreationTime())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
